function newFunc(...args){
    // 取出args数组的第一个参数，即目标的构造函数
    const constructor = args.shift()
    
    //创建一个空对象，且使这个对象继承构造函数的prototype属性
    //即实现  obj._prot_ ===  constructor.prototype
    const obj = Object.create(constructor.prototype)

    // 执行构造函数，得到构造函数返回结果
    // 注意，这里使用 apply 使构造函数的 this 指向 obj
    const result = constructor.apply(obj,args)

    // 如果构造函数执行后，返回结果是对象类型，则直接将该结果返回。否则返回obj对象
    return (typeof result === 'object' && result!=null)
}
